home *** CD-ROM | disk | FTP | other *** search
- public _ins
- ;∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
- ; Insert one item into list
- ; In:
- ; BX - number to insert at
- ; DX - total items present
- ; ECX - size of each item
- ; EBP - base of list
- ; Out:
- ; EDI - item to fill with blank
- ;∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞
- _ins:
- push ecx
- push edx
- push esi
- movzx esi,bx
- imul esi,ecx
- add esi,ebp
- lea edi,[esi+ecx]
- sub dx,bx
- movzx edx,dx
- dec edx
- jz short insdone
- imul ecx,edx
- lea esi,[esi+ecx-1]
- lea edi,[edi+ecx-1]
- std
- rep movsb
- cld
- inc esi
- insdone:
- mov edi,esi
- pop esi
- pop edx
- pop ecx
- ret
-
-